// 引入 fs 模块用于文件和目录操作
const fs = require('fs');
// 引入 path 模块用于处理路径
const path = require('path');

// 提示用户输入要创建的文件夹
console.log('请输入要创建的文件夹：');

// 监听标准输入流，获取用户输入
process.stdin.on('data', (input) => {
  // 去除输入中的首尾空白符（包括换行符）
  const command = input.toString().trim();

  // 处理创建文件夹的命令
  if (command.startsWith('mkdir ')) {
    const dirName = command.split(' ')[1];
    // 拼接文件夹路径
    const dirPath = path.join(__dirname, dirName);
    // 创建文件夹
    fs.mkdir(dirPath, (err) => {
      if (err) {
        console.error('创建文件夹失败：', err);
      } else {
        console.log('文件目录创建成功！');
        // 提示用户输入要创建的文件
        console.log('请输入要创建的文件：');
      }
    });
  } 
  // 处理创建文件的命令
  else if (command.startsWith('touch ')) {
    const fileName = command.split(' ')[1];
    // 拼接文件路径（假设放在 filedir 目录下）
    const filePath = path.join(__dirname, 'filedir', fileName);
    // 写入文件内容
    fs.writeFile(filePath, 'hello node', (err) => {
      if (err) {
        console.error('创建文件失败：', err);
      } else {
        console.log('文件创建成功');
        // 提示用户输入要删除的文件
        console.log('请输入要删除的文件：');
      }
    });
  } 
  // 处理删除文件的命令
  else if (command.startsWith('delete ')) {
    const fileName = command.split(' ')[1];
    // 拼接要删除的文件路径
    const filePath = path.join(__dirname, 'filedir', fileName);
    // 删除文件
    fs.unlink(filePath, (err) => {
      if (err) {
        console.error('删除文件失败：', err);
      } else {
        console.log('文件删除成功');
        // 退出程序
        process.exit(0);
      }
    });
  } 
  // 处理未知命令
  else {
    console.log('未知命令，请输入正确的命令（mkdir、touch、delete）');
    // 重新提示用户输入要创建的文件夹
    console.log('请输入要创建的文件夹：');
  }
});

// 监听标准输入流的结束事件
process.stdin.on('end', () => {
  process.exit(0);
});

// 设置标准输入流为原始模式，以便能正确处理输入
process.stdin.setEncoding('utf8');
process.stdin.resume();